﻿using System.Collections.Generic;
using Microsoft.SqlServer.Management.Smo;

namespace Bewise.SmartIndexManager.Core.Classes.Options
{
    public class AbstractOption
    {
        public virtual bool CheckValidation()
        {
            return true;
        }

        // retourne une liste des Options disponibles
        public static List<AbstractOption> GetListOptions()
        {
            return new List<AbstractOption>
                       {
                           new RequiredMinimumDatabaseOption(),
                           new RequiredMinimumIndexOption(),
                           new SeuilIndexOption()
                       };
        }

        public string OptionDescription()
        {
            return string.Format("Option = {0} Target Object Name = {1}", OptionName, TargetObjectName);
        }

        public virtual string TargetObjectName
        {
            get { return "not overrided"; }
        }

        public virtual string OptionName
        {
            get { return "not overrided"; }
        }
    }
}